七天帶你初探AR世界-Day 7


Day 7

今天要帶大家如何呈現不同的3D模組,基本上AR的部分已經都結束囉~那做法其實都一樣,只需結合 switch 及判斷式即可,那麼接下就開始吧!

首先,我們已經從第二天中知道如何加入模組,是從檔案名稱去決定要植入哪個模組,那麼我們何不做個 switch ,去判斷案的是哪個按鈕,並給予正確的檔名。如下:

func addModel(x: Float = 0, y: Float = -0.3, z: Float = -0.5, file: String) {
        guard let modelScene = SCNScene(named: "art.scnassets/models/\(file).obj") else { return }
        ...
        }

這邊我在 addModel 中多加了 file: String 以便之後呼叫時好帶入字串,並在植入模組的檔案位置上改為 \(file).obj

那在按鈕的部分,因為做的事都大同小異,所以我選擇用 switch 去判斷按鈕的名字,然後個別呼叫同個 func addModel() 並帶入不同的字串,如下:

    @IBAction func selectRoleButtonPressed(_ sender: UIButton) {
        switch sender {
            case addCatBt:
                addModel(file: "cat")
            case addDeerBt:
                addModel(file: "deer")
            case addWolfBt:
                addModel(file: "wolf")
            default:
            break
        }
    }

當然,按鈕都要先拉好並命名完,如此一來只要你點擊到所想要的按鈕,便會帶入想要的檔名給 func addModel() ,並呼叫出對應的模組!

最後是教大家怎麼清除節點上的模組,只需一個步驟,如下:

    @IBAction func clearAction(_ sender: Any) {
    object!.enumerateChildNodes { (node, stop) in
            node.removeFromParentNode()
        }
    }

大功告成!!!!如此一來你就能隨意新增、刪除、拖曳、縮放、旋轉模組囉~~

加入貓貓:


加入小鹿:


加入大野狼:

謝謝大家的觀看,當然我也不是什麼AR大師,有哪裡做錯或有問題的也都歡迎大家指點~互相學習互相進步!!!!

#ARKit #3Dmodel #Day7







你可能感興趣的文章

【THM Walkthrough】Lateral Movement and Pivoting (1)

【THM Walkthrough】Lateral Movement and Pivoting (1)

Angular17 部屬完成,在瀏覽器中使用 F5 重新整理跳轉 404 異常解決

Angular17 部屬完成,在瀏覽器中使用 F5 重新整理跳轉 404 異常解決

資結、JavaScript, Math Review

資結、JavaScript, Math Review






留言討論